package com.css.fxfzypg.modules.dataVolumeStatistics.controller;

import cn.hutool.core.date.DateUtil;
import com.css.fxfzypg.base.response.RestResponse;
import com.css.fxfzypg.modules.dataVolumeStatistics.entity.DataVolumeEntity;
import com.css.fxfzypg.modules.dataVolumeStatistics.service.DataVoLumeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.Date;
import java.util.List;


/**
 * @author y1fan
 * @description   清除数据库中 数据量统计 数据 并写入新一批数据，每晚1点更新
 */
@Slf4j
@Component
public class DataVolumeScheduleTask {

    @Resource
    private DataVoLumeService datavoLumeService;

    @Scheduled(cron = "${schedule.biz.clean.table-temp-data-cron}")
    public void getDataVolume(){
        try {
            datavoLumeService.getDataVolumeToPg();
            log.info("[定时任务 - 清除数据库数据量统计 - {}] 表 > {} 清除成功", DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
        } catch (Exception e) {
            log.error(e.getMessage(),"[定时任务 - 清除数据库数据量统计 - {}] 表 > {} 清除失败", DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss"));}
    }

    @Scheduled(cron = "${schedule.biz.get.dpzs-cron}")
    public void coverage(){
        try {
            datavoLumeService.coverage();
            log.info("[定时任务 - 计算大屏调查点覆盖率 - {}] 表 > {} 计算成功", DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
        } catch (Exception e) {
            log.error(e.getMessage(),"[定时任务 - 计算大屏调查点覆盖率 - {}] 表 > {} 计算失败", DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss"));}
    }

    @Scheduled(cron = "${schedule.biz.get.dpzs-cron}")
    public void coverage2(){
        try {
            datavoLumeService.coverage2();
            log.info("[定时任务 - 计算大屏调查点覆盖率 - {}] 表 > {} 计算成功", DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
        } catch (Exception e) {
            log.error(e.getMessage(),"[定时任务 - 计算大屏调查点覆盖率 - {}] 表 > {} 计算失败", DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss"));}
    }

    @Scheduled(cron = "${schedule.biz.get.dpzs-cron}")
    public void coverage3(){
        try {
            datavoLumeService.coverage3();
            log.info("[定时任务 - 计算大屏调查点覆盖率 - {}] 表 > {} 计算成功", DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
        } catch (Exception e) {
            log.error(e.getMessage(),"[定时任务 - 计算大屏调查点覆盖率 - {}] 表 > {} 计算失败", DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss"));}
    }



}
